import java.util.*;
import java.io.*;
import java.math.*;
public class NumGen {
	public static Random generator;
	public static PrintWriter out;
	public static void main(String args[]) {
		generator = new Random();
		try {
			FileOutputStream outStream = new FileOutputStream(new File("numbers"));
			out = new PrintWriter(outStream);
			out.println(0);
		         // generateRandomFloats(2000000);
		       generateSmallGaussian(100000);
	                      //generateAnderson(1000000);
	 	             //    randomMinusMean(10000);
	//		generateError(10000);
			out.flush();
			out.close();
		}
		catch(FileNotFoundException e) {}
	}



	//data set c
	public static void generateRandomFloats(int numberOfNumbers) {
		
		while(numberOfNumbers > 0) {
			int temp = generator.nextInt();
			float number = Float.intBitsToFloat(temp); 
			if(Float.isNaN(number) == false && Float.isInfinite(number) == false) {
				out.println(new BigDecimal(number));
				numberOfNumbers--;
				int divisor = generator.nextInt(5) + 1;
				float number2 = number / divisor * -1;
				for(int i = 0; i < divisor; i++) {
					out.println(new BigDecimal(number2));
					numberOfNumbers--;
				}
			}
		}
	}
	//data set d
	public static void randomMinusMean(int numberOfNumbers) {
		// generate random numbers
		Stack<BigDecimal> theNumbers = new Stack<BigDecimal>();
		for(int i = 0; i < numberOfNumbers; i++) {
			int temp = generator.nextInt();
			float number = Float.intBitsToFloat(temp); 
			if(Float.isNaN(number) == false && Float.isInfinite(number) == false) {
				theNumbers.push(new BigDecimal(number));		
			}
		}

		// find the average
		BigDecimal sum = new BigDecimal(0);
		for(int i = 0; i < theNumbers.size(); i++) {
			sum = sum.add(theNumbers.elementAt(i));
		}
		sum = sum.divide(new BigDecimal(numberOfNumbers), 0); 
		
		// for each one subtract the average and print
		while(theNumbers.size() > 0) {
			float temp = (theNumbers.pop().subtract(sum)).floatValue();
			if(Float.isInfinite(temp) == false && Float.isNaN(temp) == false) 
				out.println(temp);
		}
	}
	//data set b
	public static void generateSmallGaussian(int numberOfNumbers) {
		for(int i = 0; i < numberOfNumbers; i++) {
			float number =  (float) generator.nextGaussian();
			                                                 
			if(Float.isInfinite(number) == false && Float.isNaN(number) == false) {
				out.println(new BigDecimal(number));
			}
		}
	}

	//data set a
	public static void generateError(int numberOfNumbers) {
		for(int i = 0; i < numberOfNumbers; i++) {
			int temp = generator.nextInt();
			float number = Float.intBitsToFloat(temp); 
			if(Float.isNaN(number) == true || Float.isInfinite(number) == true) {
				out.println(new BigDecimal(number));
			}
		}


	}
}
